// import { baseUrl } from '../config/env'
// 整合axios
import store from '../store'
import axios from 'axios'
import qs from 'qs' // qs库应该是axios安装时会自带的
import bus from '@/utils/bus.js'
// 设置Axios 的默认全局设置
axios.defaults.timeout = 0 // 响应时间
// axios.defaults.baseURL = process.env.VUE_APP_BASE_API;
// 配置接口地址
// axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' // 对应参数传递是form data(多用于表单默认提交) 数组是a[1] a[2] a[3]形式
// axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'; //这是默认的  对应参数传递是request payload(多用于普通ajax提交) 数组是a[1,2,3]形式的

// POST传参序列化(添加请求拦截器)
axios.interceptors.request.use((config) => {
  // debugger;
  // console.log(config)
  // data作为参数key时：  config.data 是Form Data,                 qs.stringify有作用
  // params作为参数key时：config.params 是Query String Parameters, qs.stringify无作用
  // if (config.method == 'post') {
  // config.data = qs.stringify(config.data, { indices: false });
  // }
  // if (store.getters.token) {
  //   config.headers['X-Token'] = store.getters.token; // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
  // }
  // config.url = (config.url && config.url.split("!") && config.url.split("!").length == 2) ? location.origin + config.url.split("!")[1] : config.url;

  // qs.stringify({ids: [1, 2, 3]}, { indices: false })           //形式： ids=1&ids=2&ids=3
  // qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘indices‘})     //形式： ids[0]=1&aids1]=2&ids[2]=3 【默认】
  // qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘brackets‘})    //形式： ids[]=1&ids[]=2&ids[]=3
  // qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘repeat‘})      //形式： ids=1&ids=2&ids=3
  // qs.stringify({ids: [1, 2, 3]);                               //形式： ids[0]=1&aids1]=2&ids[2]=3
  return config
}, (error) => {
  _.toast('错误的传参', 'fail')
  return Promise.reject(error)
})
// 添加一个响应拦截器
axios.interceptors.response.use((res) => {
  if ((res.data.result == 421) && res.data.redirect) {
    location.href = res.data.redirect + '?redirect_uri=' + location.href
    // return res.data;
  } else if (res.data.result != 0) {
    bus.$emit('showPublicMassage', {
      message: res.data.msg
        ? res.data.msg
        : 'result is: ' + res.data.result,
      type: 'error',
      showClose: true,
      duration: 3000
    })
    return null
  } else {
    return res.data
  }

  // Do something with res data
  // if (res.status == 200) {
  //   res = res.data
  // }
  // return res;
}, (error) => {
  bus.$emit('showPublicMassage', {
    message: '接口失败' + error,
    type: 'error',
    showClose: true,
    duration: 3000
  })
  // Do something with res error
  // alert(error)
  // window.history.back(-1);
  // return Promise.reject(error);
  return error
})

// 作为vue 的插架使用（在main.js vue use 调用install 方法，所有打的子组件都可以使用）
// export default {
//     install: function (Vue) {
//         Vue.prototype.$http = axios;
//     },
//     axios
// }
// export const install = Vue => {
//     Vue.prototype.$http = axios;
// }
// export const service = axios;  //这样不行

const service = axios
export default service // 这样才可以
